/**
 * @author Macrydy
 * @date 2022/5/5
 *
 * 匿名内部类使用
 * 适用范围：接口，普通类，抽象类
 *
 */
public class Tset1 {
    public static void main(String[] args) {

        //匿名内部类
        usePerson(new Person() {
            @Override
            public void work() {
                System.out.println("修电脑");
            }
        });

        useAnimal(new Animal() {
            @Override
            public void eat() {
                System.out.println("猫吃鱼");
            }

            @Override
            public void work() {
                System.out.println("抓老鼠");
            }
        });

        //多个方法只能使用父类指向子类，子类分别调用方法
        Animal a=new Animal() {
            @Override
            public void eat() {
                System.out.println("狗吃肉骨头");
            }

            @Override
            public void work() {
                System.out.println("看门");
            }
        };
        a.eat();
        a.work();

    }

    public static void usePerson(Person person) {
        person.work();
    }

    public static void useAnimal(Animal animal) {
        animal.work();
        animal.eat();
    }


}


//一个方法
interface Person{
    void work();
}

//多个方法
interface Animal{
    void eat();
    void work();
}